package dominio;

import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

@Entity(name = "mueble")
@DiscriminatorValue("MUEBLE")
public class Mueble extends Articulo {

	/**
	 * 
	 */
	private static final long serialVersionUID = 211598287876003369L;

	private String material;

	public Mueble() {
		super();
	}

	public Mueble(Long codigo, String nombre, String descripcion, String marca,
			Float precio, String foto, String origen, Integer cantidad,
			String material) {
		super(codigo, nombre, descripcion, marca, precio, foto, origen,
				cantidad);
		this.material = material;
	}

	public Mueble(String nombre, String descripcion, String marca,
			Float precio, String foto, String origen, Integer cantidad,
			String material) {
		super(nombre, descripcion, marca, precio, foto, origen, cantidad);
		this.material = material;
	}

	public String getMaterial() {
		return material;
	}

	public void setMaterial(String material) {
		this.material = material;
	}

	@Override
	protected void addInformation(Document doc, Element rootElement) {
		// set attribute to articulo element
		// shorten way
//		rootElement.setAttribute("categoria", "mueble");

		// tipo elements
		Element tipo = doc.createElement("tipo");
		tipo.appendChild(doc.createTextNode("mueble"));
		rootElement.appendChild(tipo);
		
		// material elements
		Element materialElement = doc.createElement("material");
		String material2 = getMaterial() != null ? getMaterial() : "";
		materialElement.appendChild(doc.createTextNode(material2));
		rootElement.appendChild(materialElement);
	}

	@Override
	public String toString() {
		return "Mueble ["
				+ (material != null ? "material=" + material + ", " : "")
				+ (getCodigo() != null ? "getCodigo()=" + getCodigo() + ", "
						: "")
				+ (getNombre() != null ? "getNombre()=" + getNombre() + ", "
						: "")
				+ (getDescripcion() != null ? "getDescripcion()="
						+ getDescripcion() + ", " : "")
				+ (getMarca() != null ? "getMarca()=" + getMarca() + ", " : "")
				+ (getPrecio() != null ? "getPrecio()=" + getPrecio() + ", "
						: "")
				+ (getFoto() != null ? "getFoto()=" + getFoto() : "") + "]";
	}

	@Override
	public String getTipo() {
		return "Mueble";
	}
}
